<?xml version="1.0" encoding="ascii"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
          "DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
  <title>simvoc.core.aggregator.Aggregator</title>
  <link rel="stylesheet" href="epydoc.css" type="text/css" />
  <script type="text/javascript" src="epydoc.js"></script>
</head>

<body bgcolor="white" text="black" link="blue" vlink="#204080"
      alink="#204080">
<!-- ==================== NAVIGATION BAR ==================== -->
<table class="navbar" border="0" width="100%" cellpadding="0"
       bgcolor="#a0c0ff" cellspacing="0">
  <tr valign="middle">
  <!-- Home link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="simvoc-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Tree link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Index link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Help link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Project homepage -->
      <th class="navbar" align="right" width="100%">
        <table border="0" cellpadding="0" cellspacing="0">
          <tr><th class="navbar" align="center"
            >SimVOC</th>
          </tr></table></th>
  </tr>
</table>
<table width="100%" cellpadding="0" cellspacing="0">
  <tr valign="top">
    <td width="100%">
      <span class="breadcrumbs">
        <a href="simvoc-module.html">Package&nbsp;simvoc</a> ::
        <a href="simvoc.core-module.html">Package&nbsp;core</a> ::
        <a href="simvoc.core.aggregator-module.html">Module&nbsp;aggregator</a> ::
        Class&nbsp;Aggregator
      </span>
    </td>
    <td>
      <table cellpadding="0" cellspacing="0">
        <!-- hide/show private -->
        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
      </table>
    </td>
  </tr>
</table>
<!-- ==================== CLASS DESCRIPTION ==================== -->
<h1 class="epydoc">Class Aggregator</h1><p class="nomargin-top"><span class="codelink"><a href="simvoc.core.aggregator-pysrc.html#Aggregator">source&nbsp;code</a></span></p>
<center>
<center>  <map id="uml_class_diagram_for_simvoc_c" name="uml_class_diagram_for_simvoc_c">
<area shape="rect" id="node0" href="simvoc.core.aggregator.Aggregator-class.html#__init__" title="x.__init__(...) initializes x; see x.__class__.__doc__ for signature" alt="" coords="17,135,191,153"/>
<area shape="rect" id="node0" href="simvoc.core.aggregator.Aggregator-class.html#handle_append" title="Receives a new result and handles the aggregation function." alt="" coords="17,153,191,172"/>
<area shape="rect" id="node0" href="simvoc.core.aggregator.Aggregator-class.html#handle_close" title="Method invoked by parent: flushes the final aggregation to create final &#160;results at the end of a simulation" alt="" coords="17,172,191,191"/>
<area shape="rect" id="node1" href="simvoc.core.aggregator.Aggregator-class.html" title="Aggregation output handler: aggregates some types of results, creating AggregationResult objects that are sent to the downstream output handler." alt="" coords="5,102,203,197"/>
<area shape="rect" id="node1" href="simvoc.core.kernel.Output-class.html#append" title="Appends a result to the output destination, then passes the result to a &#160;downstream Output handler, if any." alt="" coords="45,39,163,57"/>
<area shape="rect" id="node1" href="simvoc.core.kernel.Output-class.html#close" title="Closes all output handlers in the downstream portion of the pipeline, &#160;including the output handler on which this method is invoked (if &#160;applicable)." alt="" coords="45,57,163,76"/>
<area shape="rect" id="node2" href="simvoc.core.kernel.Output-class.html" title="Simulator output handler base class." alt="" coords="33,6,175,82"/>
</map>
  <img src="uml_class_diagram_for_simvoc_c.gif" alt='' usemap="#uml_class_diagram_for_simvoc_c" ismap="ismap" class="graph-without-title" />
</center>
</center>
<hr />
<p>Aggregation output handler: aggregates some types of results, creating
  AggregationResult objects that are sent to the downstream output handler.
  Instances of this class are designed to be used as intermediate 
  processing steps in the output pipeline, not as final output 
  destinations.</p>

<!-- ==================== INSTANCE METHODS ==================== -->
<a name="section-InstanceMethods"></a>
<table class="summary" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr bgcolor="#70b0f0" class="table-header">
  <td colspan="2" class="table-header">
    <table border="0" cellpadding="0" cellspacing="0" width="100%">
      <tr valign="top">
        <td align="left"><span class="table-header">Instance Methods</span></td>
        <td align="right" valign="top"
         ><span class="options">[<a href="#section-InstanceMethods"
         class="privatelink" onclick="toggle_private();"
         >hide private</a>]</span></td>
      </tr>
    </table>
  </td>
</tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a href="simvoc.core.aggregator.Aggregator-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>,
        <span class="summary-sig-arg">output_handler</span>)</span><br />
      x.__init__(...) initializes x; see x.__class__.__doc__ for signature</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="simvoc.core.aggregator-pysrc.html#Aggregator.__init__">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr class="private">
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a href="simvoc.core.aggregator.Aggregator-class.html#__append_aggregate" class="summary-sig-name" onclick="show_private();">__append_aggregate</a>(<span class="summary-sig-arg">self</span>,
        <span class="summary-sig-arg">agg_type</span>)</span><br />
      Private method: creates an AggregationResult and sends this new 
      result to the downstream output handler</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="simvoc.core.aggregator-pysrc.html#Aggregator.__append_aggregate">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr class="private">
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">number</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a href="simvoc.core.aggregator.Aggregator-class.html#__delta" class="summary-sig-name" onclick="show_private();">__delta</a>(<span class="summary-sig-arg">self</span>,
        <span class="summary-sig-arg">field</span>,
        <span class="summary-sig-arg">new_result</span>)</span><br />
      Private method: computes the difference in a newly observed 
      aggregation value from the saved prior value for the same source 
      entity (or zero if no prior value has been saved).</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="simvoc.core.aggregator-pysrc.html#Aggregator.__delta">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr class="private">
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a href="simvoc.core.aggregator.Aggregator-class.html#__add_result" class="summary-sig-name" onclick="show_private();">__add_result</a>(<span class="summary-sig-arg">self</span>,
        <span class="summary-sig-arg">result</span>)</span><br />
      Private method: adds a result to the aggregation data.</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="simvoc.core.aggregator-pysrc.html#Aggregator.__add_result">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a href="simvoc.core.aggregator.Aggregator-class.html#handle_append" class="summary-sig-name">handle_append</a>(<span class="summary-sig-arg">self</span>,
        <span class="summary-sig-arg">result</span>)</span><br />
      Receives a new result and handles the aggregation function.</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="simvoc.core.aggregator-pysrc.html#Aggregator.handle_append">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a href="simvoc.core.aggregator.Aggregator-class.html#handle_close" class="summary-sig-name">handle_close</a>(<span class="summary-sig-arg">self</span>)</span><br />
      Method invoked by parent: flushes the final aggregation to create 
      final results at the end of a simulation</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="simvoc.core.aggregator-pysrc.html#Aggregator.handle_close">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a href="simvoc.core.kernel.Output-class.html#append" class="summary-sig-name">append</a>(<span class="summary-sig-arg">self</span>,
        <span class="summary-sig-arg">result</span>)</span><br />
      Appends a result to the output destination, then passes the result to
      a downstream Output handler, if any.
      <em>(Inherited from <a href="simvoc.core.kernel.Output-class.html">simvoc.core.kernel.Output</a>)</em></td>
          <td align="right" valign="top">
            <span class="codelink"><a href="simvoc.core.kernel-pysrc.html#Output.append">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a name="close"></a><span class="summary-sig-name">close</span>(<span class="summary-sig-arg">self</span>)</span><br />
      Closes all output handlers in the downstream portion of the pipeline,
      including the output handler on which this method is invoked (if 
      applicable).
      <em>(Inherited from <a href="simvoc.core.kernel.Output-class.html">simvoc.core.kernel.Output</a>)</em></td>
          <td align="right" valign="top">
            <span class="codelink"><a href="simvoc.core.kernel-pysrc.html#Output.close">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
  <tr>
    <td colspan="2" class="summary">
    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
      <code>__delattr__</code>,
      <code>__format__</code>,
      <code>__getattribute__</code>,
      <code>__hash__</code>,
      <code>__new__</code>,
      <code>__reduce__</code>,
      <code>__reduce_ex__</code>,
      <code>__repr__</code>,
      <code>__setattr__</code>,
      <code>__sizeof__</code>,
      <code>__str__</code>,
      <code>__subclasshook__</code>
      </p>
    </td>
  </tr>
</table>
<!-- ==================== PROPERTIES ==================== -->
<a name="section-Properties"></a>
<table class="summary" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr bgcolor="#70b0f0" class="table-header">
  <td colspan="2" class="table-header">
    <table border="0" cellpadding="0" cellspacing="0" width="100%">
      <tr valign="top">
        <td align="left"><span class="table-header">Properties</span></td>
        <td align="right" valign="top"
         ><span class="options">[<a href="#section-Properties"
         class="privatelink" onclick="toggle_private();"
         >hide private</a>]</span></td>
      </tr>
    </table>
  </td>
</tr>
  <tr>
    <td colspan="2" class="summary">
    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
      <code>__class__</code>
      </p>
    </td>
  </tr>
</table>
<!-- ==================== METHOD DETAILS ==================== -->
<a name="section-MethodDetails"></a>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr bgcolor="#70b0f0" class="table-header">
  <td colspan="2" class="table-header">
    <table border="0" cellpadding="0" cellspacing="0" width="100%">
      <tr valign="top">
        <td align="left"><span class="table-header">Method Details</span></td>
        <td align="right" valign="top"
         ><span class="options">[<a href="#section-MethodDetails"
         class="privatelink" onclick="toggle_private();"
         >hide private</a>]</span></td>
      </tr>
    </table>
  </td>
</tr>
</table>
<a name="__init__"></a>
<div>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr><td>
  <table width="100%" cellpadding="0" cellspacing="0" border="0">
  <tr valign="top"><td>
  <h3 class="epydoc"><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-arg">self</span>,
        <span class="sig-arg">output_handler</span>)</span>
    <br /><em class="fname">(Constructor)</em>
  </h3>
  </td><td align="right" valign="top"
    ><span class="codelink"><a href="simvoc.core.aggregator-pysrc.html#Aggregator.__init__">source&nbsp;code</a></span>&nbsp;
    </td>
  </tr></table>
  
  <p>x.__init__(...) initializes x; see x.__class__.__doc__ for 
  signature</p>
  <dl class="fields">
    <dt>Parameters:</dt>
    <dd><ul class="nomargin-top">
        <li><strong class="pname"><code>output_handler</code></strong> - Downstream output pipeline component (required)</li>
    </ul></dd>
    <dt>Overrides:
        object.__init__
    </dt>
  </dl>
</td></tr></table>
</div>
<a name="__append_aggregate"></a>
<div class="private">
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr><td>
  <table width="100%" cellpadding="0" cellspacing="0" border="0">
  <tr valign="top"><td>
  <h3 class="epydoc"><span class="sig"><span class="sig-name">__append_aggregate</span>(<span class="sig-arg">self</span>,
        <span class="sig-arg">agg_type</span>)</span>
  </h3>
  </td><td align="right" valign="top"
    ><span class="codelink"><a href="simvoc.core.aggregator-pysrc.html#Aggregator.__append_aggregate">source&nbsp;code</a></span>&nbsp;
    </td>
  </tr></table>
  
  <p>Private method: creates an AggregationResult and sends this new result
  to the downstream output handler</p>
  <dl class="fields">
    <dt>Parameters:</dt>
    <dd><ul class="nomargin-top">
        <li><strong class="pname"><code>agg_type</code></strong> (str) - Aggregation name</li>
    </ul></dd>
  </dl>
</td></tr></table>
</div>
<a name="__delta"></a>
<div class="private">
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr><td>
  <table width="100%" cellpadding="0" cellspacing="0" border="0">
  <tr valign="top"><td>
  <h3 class="epydoc"><span class="sig"><span class="sig-name">__delta</span>(<span class="sig-arg">self</span>,
        <span class="sig-arg">field</span>,
        <span class="sig-arg">new_result</span>)</span>
  </h3>
  </td><td align="right" valign="top"
    ><span class="codelink"><a href="simvoc.core.aggregator-pysrc.html#Aggregator.__delta">source&nbsp;code</a></span>&nbsp;
    </td>
  </tr></table>
  
  <p>Private method: computes the difference in a newly observed 
  aggregation value from the saved prior value for the same source entity 
  (or zero if no prior value has been saved).</p>
  <dl class="fields">
    <dt>Parameters:</dt>
    <dd><ul class="nomargin-top">
        <li><strong class="pname"><code>field</code></strong> (str) - Aggregation field name</li>
        <li><strong class="pname"><code>new_result</code></strong> - Newly observed result object</li>
    </ul></dd>
    <dt>Returns: number</dt>
        <dd>the difference between the new and old values</dd>
  </dl>
</td></tr></table>
</div>
<a name="__add_result"></a>
<div class="private">
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr><td>
  <table width="100%" cellpadding="0" cellspacing="0" border="0">
  <tr valign="top"><td>
  <h3 class="epydoc"><span class="sig"><span class="sig-name">__add_result</span>(<span class="sig-arg">self</span>,
        <span class="sig-arg">result</span>)</span>
  </h3>
  </td><td align="right" valign="top"
    ><span class="codelink"><a href="simvoc.core.aggregator-pysrc.html#Aggregator.__add_result">source&nbsp;code</a></span>&nbsp;
    </td>
  </tr></table>
  
  <p>Private method: adds a result to the aggregation data. The result must
  have a non-empty delta_fields member, which should be checked before 
  calling this method.</p>
  <dl class="fields">
    <dt>Parameters:</dt>
    <dd><ul class="nomargin-top">
        <li><strong class="pname"><code>result</code></strong> - Aggregatable result to add to the data set</li>
    </ul></dd>
  </dl>
</td></tr></table>
</div>
<a name="handle_append"></a>
<div>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr><td>
  <table width="100%" cellpadding="0" cellspacing="0" border="0">
  <tr valign="top"><td>
  <h3 class="epydoc"><span class="sig"><span class="sig-name">handle_append</span>(<span class="sig-arg">self</span>,
        <span class="sig-arg">result</span>)</span>
  </h3>
  </td><td align="right" valign="top"
    ><span class="codelink"><a href="simvoc.core.aggregator-pysrc.html#Aggregator.handle_append">source&nbsp;code</a></span>&nbsp;
    </td>
  </tr></table>
  
  <p>Receives a new result and handles the aggregation function. This 
  method is invoked by the append() method of the parent class.</p>
  <dl class="fields">
    <dt>Parameters:</dt>
    <dd><ul class="nomargin-top">
        <li><strong class="pname"><code>result</code></strong> - Result to be received</li>
    </ul></dd>
    <dt>Overrides:
        <a href="simvoc.core.kernel.Output-class.html#handle_append">kernel.Output.handle_append</a>
    </dt>
  </dl>
</td></tr></table>
</div>
<a name="handle_close"></a>
<div>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr><td>
  <table width="100%" cellpadding="0" cellspacing="0" border="0">
  <tr valign="top"><td>
  <h3 class="epydoc"><span class="sig"><span class="sig-name">handle_close</span>(<span class="sig-arg">self</span>)</span>
  </h3>
  </td><td align="right" valign="top"
    ><span class="codelink"><a href="simvoc.core.aggregator-pysrc.html#Aggregator.handle_close">source&nbsp;code</a></span>&nbsp;
    </td>
  </tr></table>
  
  <p>Method invoked by parent: flushes the final aggregation to create 
  final results at the end of a simulation</p>
  <dl class="fields">
    <dt>Overrides:
        <a href="simvoc.core.kernel.Output-class.html#handle_close">kernel.Output.handle_close</a>
    </dt>
  </dl>
</td></tr></table>
</div>
<br />
<!-- ==================== NAVIGATION BAR ==================== -->
<table class="navbar" border="0" width="100%" cellpadding="0"
       bgcolor="#a0c0ff" cellspacing="0">
  <tr valign="middle">
  <!-- Home link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="simvoc-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Tree link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Index link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Help link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Project homepage -->
      <th class="navbar" align="right" width="100%">
        <table border="0" cellpadding="0" cellspacing="0">
          <tr><th class="navbar" align="center"
            >SimVOC</th>
          </tr></table></th>
  </tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
  <tr>
    <td align="left" class="footer">
    Generated by Epydoc 3.0 on Fri Oct 23 11:04:29 2009
    </td>
    <td align="right" class="footer">
      <a target="mainFrame" href="http://epydoc.sourceforge.net"
        >http://epydoc.sourceforge.net</a>
    </td>
  </tr>
</table>

<script type="text/javascript">
  <!--
  // Private objects are initially displayed (because if
  // javascript is turned off then we want them to be
  // visible); but by default, we want to hide them.  So hide
  // them unless we have a cookie that says to show them.
  checkCookie();
  // -->
</script>
</body>
</html>
